// LUOGU_RID: 91728575
#include<cstdio>
#include<cstring>
int n,m,g[45];
char st[45];
long long dp[45][45][2],ans=0;
int main()
{
scanf("%d",&n);
scanf("%s",st+1);
m=std::strlen(st+1);
for (int i=1;i<=m;i++)
{
int flag=1,x=1,y=i;
while (y<=m){if (st[x]!=st[y]) flag=0;++x,++y;}
g[i-1]=flag;
}
dp[1][1][1]=1;
for (int i=2;i<=n;i++)
for (int x=1;x<i;x++)
for (int o=0;o<=1;o++)
{
if ((i-x>=m||g[i-x])&&(n+1-i>=m||g[n+1-i])) dp[i][i][1-o]=dp[i][i][1-o]+dp[i-1][x][o];
dp[i][x][o]=dp[i][x][o]+(1+(x+m<=i))*dp[i-1][x][o];
}
for (int x=1;x<=n;x++) ans=ans+(dp[n][x][1]-dp[n][x][0])*(n+1-x);
printf("%lld\n",ans);
return 0;
}
1351. Count Negative Numbers in a Sorted Matrix | 617. Merge Two Binary Trees |
1450. Number of Students Doing Homework at a Given Time | 700. Search in a Binary Search Tree |
590. N-ary Tree Postorder Traversal | 589. N-ary Tree Preorder Traversal |
1299. Replace Elements with Greatest Element on Right Side | 1768. Merge Strings Alternately |
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |